// pages/shops/shopsdetails/shopsdetail.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goodsDetail: null,
    carouselImages: [], // 轮播图数组
    detailImages: [],   // 详情图数组
    current: 0          // 当前轮播图索引
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('接收到的参数：', options);
    const id = Number(options.id);
    if (!id) {
      wx.showToast({
        title: '商品ID无效',
        icon: 'none',
        duration: 2000
      });
      return;
    }
    this.fetchProductDetail(id);
  },

  // 获取商品详情
  fetchProductDetail(id) {
    console.log('开始获取商品详情，ID：', id);
    wx.showLoading({
      title: '加载中...',
      mask: true
    });

    const url = `http://localhost:8080/products/${id}`;
    console.log('请求URL：', url);

    wx.request({
      url: url,
      method: 'GET',
      header: {
        'content-type': 'application/json'
      },
      success: (res) => {
        console.log('请求成功，返回数据：', res);
        if (res.statusCode === 200) {
          // 检查返回的数据结构
          const responseData = res.data.data;
          if (responseData) {
            console.log('解析到的商品数据：', responseData);
            this.setData({
              goodsDetail: {
                id: responseData.id,
                title: responseData.title,
                price: responseData.price,
                desc: responseData.introduce || responseData.desc,
                soldCount: responseData.soldCount || 0
              },
              carouselImages: responseData.carouselImages ? responseData.carouselImages.split(',') : [],
              detailImages: responseData.detailImages ? responseData.detailImages.split(',') : []
            });
          } else {
            console.error('返回数据格式不正确：', res.data);
            wx.showToast({
              title: '商品数据格式错误',
              icon: 'none',
              duration: 2000
            });
          }
        } else {
          console.error('HTTP状态码错误：', res.statusCode);
          wx.showToast({
            title: '服务器响应错误',
            icon: 'none',
            duration: 2000
          });
        }
      },
      fail: (error) => {
        console.error('请求失败，错误信息：', error);
        wx.showToast({
          title: '网络连接失败，请检查网络设置',
          icon: 'none',
          duration: 2000
        });
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  addToCart() {
    const goods = this.data.goodsDetail;
    if (!goods) return;

    let cart = wx.getStorageSync('cart') || [];
    const goodsId = Number(goods.id);
    const existingItem = cart.find(item => Number(item.id) === goodsId);

    if (existingItem) {
      existingItem.num += 1;
    } else {
      cart.push({
        id: goodsId,
        title: goods.title,
        price: goods.price,
        img: this.data.carouselImages[0] || '', // 使用第一张轮播图作为商品图片
        desc: goods.desc,
        num: 1,
        checked: true
      });
    }

    wx.setStorageSync('cart', cart);

    const pages = getCurrentPages();
    const shopsPage = pages.find(page => page.route === 'pages/shops/shops');
    if (shopsPage) {
      shopsPage.updateCartBadge();
    }

    wx.showToast({
      title: '已添加到购物车',
      icon: 'success'
    });
  },

  buyNow() {
    const goods = this.data.goodsDetail;
    if (!goods) return;
    
    const tempOrder = [{
      id: Number(goods.id),
      title: goods.title,
      price: goods.price,
      img: this.data.carouselImages[0] || '', // 使用第一张轮播图作为商品图片
      desc: goods.desc,
      num: 1,
      checked: true
    }];
    
    wx.setStorageSync('tempOrder', tempOrder);
    
    wx.navigateTo({
      url: '/pages/order/payment'
    });
  },

  onSwiperChange(e) {
    this.setData({
      current: e.detail.current
    });
  }
})